/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sd_proj1.interfaces;

/**
 *
 * @author Pedro Costa Correia - 32795
 * @author Valter Pedro Lopes Vicente - 39360
 */
public interface IOwnerStore {

	/**
	 *Método de finalização da thread dona da loja
	 * @return<li> true - quando a dona está em fase que pode morrer, ou seja quando os artesãos estao todos mortos,
	 *			não existem clientes na loja  e que não existem mais produtos para os mesmos comprarem.
	 *		<li> false - caso contrário.
	 */
	public boolean endOperEntrep();

	/**
	 * Monitor invocado pela dona definindo a abertura da loja.
	 *
	 */
	public void prepareToWork();

	/**
	 * Monitor invocado pela dona para verificação da existencia de clientes na loja
	 * @return <li> true, se existirem.
	 *            <li> false, em caso contrário.
	 */
	public boolean customersInTheShop();

	/**
	 * Monitor invocado pela dona da loja indicando que a loja foi fechada com sucesso.
	 *
	 */
	public void closeTheDoor();

	/**
	 *   Monitor invocado pela dona, sinalizando que fechou a loja e vai em direcção à oficina.
	 */
	public void prepareToLeave();

	/**
	 * Monitor invocado pela dona, informando que regressou à loja.
	 */
	public void returnToShop();

	/**
	 * Monitor invocado pela dona, alterando o estado do cliente e da dona, depois desta o ter atendido.
	 *
	 * @param customerId Identificação do cliente.
	 */
	public void sayGoodByeToCustomer(int customerId);
}
